// 管理 SPU 模块接口的 ts 数据类型
export interface ResponseData {
  code: number
  message: string
  ok: boolean
}

//SPU数据的ts类型:需要修改
export interface SpuData {
  id?: number
  spuName: string
  description: string
  category3Id: number | string
  tmId: number | string
  spuSaleAttrList: null | SaleAttrValue[]
  spuImageList: null | SpuImg[]
}

// 数组：元素里面都是已有的SPU数据类型
export type Records = SpuData[]

// 定义获取已有的SPU接口返回的数据ts类型
export interface HasSpuResponseData extends ResponseData {
  data: {
    records: Records
    total: number
    size: number
    current: number
    searchCount: boolean
    pages: number
  }
}

// 所有的spu品牌数据的 ts 类型
export interface Trademark {
  id: number
  tmName: string
  logoUrl: string
}

// spu 品牌接口返回的数据ts类型
export interface AllTradeMark extends ResponseData {
  data: Trademark[]
}

//商品图片的ts类型
// export interface SpuImg {
//   id: number
//   createTime: string
//   updateTime: string
//   spuId: number
//   imgName: string
//   imgUrl: string
//   name?: string
//   url?: string
// }
//商品图片的ts类型
export interface SpuImg {
  id?: number
  createTime?: string
  updateTime?: string
  spuId?: number
  imgName?: string
  imgUrl?: string
  name?: string
  url?: string
}
// 已有的SPU的照片墙数据的类型
export interface SpuHasImg extends ResponseData {
  data: SpuImg[]
}

//已有的销售属性值对象ts类型
export interface SaleAttrValue {
  id?: number
  createTime: null
  updateTime: null
  spuId: number
  baseSaleAttrId: number | string
  saleAttrValueName: string
  saleAttrName: string
  isChecked: null
}

//存储已有的销售属性值数组类型
export type SpuSaleAttrValueList = SaleAttrValue[]

//销售属性对象ts类型 id为新增销售属性携带
export interface SaleAttr {
  id?: number
  createTime: null
  updateTime: null
  spuId: number
  baseSaleAttrId: number | string
  saleAttrName: string
  spuSaleAttrValueList: SpuSaleAttrValueList
  flag: boolean
  saleAttrValue?: string
}
//SPU已有的销售属性接口返回数据ts类型
export interface SaleAttrResponseData extends ResponseData {
  data: SaleAttr[]
}

//已有的全部SPU的返回数据ts类型
export interface HasSaleAttr {
  id: number
  name: string
}

export interface HasSaleAttrResponseData extends ResponseData {
  data: HasSaleAttr[]
}

// 平台属性
export interface attr {
  attrId: number | string //平台属性的ID
  valueId: number | string //属性值的ID
}
// 销售属性
export interface saleAttr {
  saleAttrId: number | string //属性ID
  saleAttrValueId: number | string //属性值的ID
}
// 新增 sku 需要携带参数的类型
export interface SkuData {
  category3Id: number | string // 三级分类ID
  spuId: number | string // 已有spu品牌ID
  tmId: number | string // spu品牌ID
  skuName: string //sku名字
  price: number | string //sku价格
  weight: number | string //sku重量
  skuDesc: string //sku的描述
  skuAttrValueList?: attr[]
  skuSaleAttrValueList?: saleAttr[]
  skuDefaultImg: string //sku图片地址
}

// 获取 sku 数据接口 ts 类型
export interface SkuInfo extends ResponseData {
  data: SkuData[]
}
